﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CANO.Data.DAOs
{
	public class ContactoTelefonosDAO
	{
		public int Contacto { get; set; }
		public int TipoTelefonoID { get; set; }
		public string Telefono { get; set; }
		public string TipoTelefonoDisplay { get; set; }

		public void create()
		{
			using (CANOPropiedadesDCDataContext context = new CANOPropiedadesDCDataContext())
			{
				ContactoTelefonos newContactTel = new ContactoTelefonos();
				newContactTel.Telefono = this.Telefono;
				newContactTel.TipoTelefono = this.TipoTelefonoID;
				newContactTel.Contacto = this.Contacto;
				context.ContactoTelefonos.InsertOnSubmit(newContactTel);
				context.SubmitChanges();
			}
		}

		public static List<ContactoTelefonosDAO> getAllByContactoID(int contactID)
		{
			using (CANOPropiedadesDCDataContext context = new CANOPropiedadesDCDataContext())
			{
				List<ContactoTelefonosDAO> listContactoTelefono = new List<ContactoTelefonosDAO>();

				var contactoTelefonos =
					from ct in context.ContactoTelefonos
					where ct.Contacto == contactID
					select ct;

				foreach (var contactoTelefonoItem in contactoTelefonos)
				{
					ContactoTelefonosDAO contactoTelefono = new ContactoTelefonosDAO();
					contactoTelefono.Contacto = contactoTelefonoItem.Contacto;
					contactoTelefono.Telefono = contactoTelefonoItem.Telefono;

					var tipoTelefono =
							from tt in context.TipoTelefono
							where tt.TipoTelefonoID == contactoTelefonoItem.TipoTelefono
							select tt;

					contactoTelefono.TipoTelefonoDisplay = tipoTelefono.SingleOrDefault().TipoTelefono1;
					contactoTelefono.TipoTelefonoID = contactoTelefonoItem.TipoTelefono;

					listContactoTelefono.Add(contactoTelefono);
				}
				

				return listContactoTelefono;
			}
		}
	}
}
